Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Commit fa2d78c3510c47d4903cdfca1dacb49e69164ae5


Parents : f18ce9e
Author : Mark Qvist <mark@unsigned.io>
Date : 2025-11-03T22:19:20+01:00

Fixed message stamps getting overwritten if propagation stamp was also present

Changes

2 files changed, 3 insertions(+), 3 deletions(-)


Diff

diff --git a/LXMF/LXMRouter.py b/LXMF/LXMRouter.py
index 08c11f8..7afbc73 100644
--- a/LXMF/LXMRouter.py
+++ b/LXMF/LXMRouter.py
@@ -2424,7 +2424,7 @@ class LXMRouter:
selected_lxm.stamp = generated_stamp
selected_lxm.defer_stamp = False
selected_lxm.packed = None
- selected_lxm.pack()
+ selected_lxm.pack(payload_updated=True)
stamp_generation_success = True
RNS.log(f"Stamp generation completed for {selected_lxm}", RNS.LOG_DEBUG)
else:

diff --git a/LXMF/LXMessage.py b/LXMF/LXMessage.py
index 0533f07..baf951a 100644
--- a/LXMF/LXMessage.py
+++ b/LXMF/LXMessage.py
@@ -357,7 +357,7 @@ class LXMessage:
else:
return None
- def pack(self):
+ def pack(self, payload_updated=False):
if not self.packed:
if self.timestamp == None: self.timestamp = time.time()
@@ -431,7 +431,7 @@ class LXMessage:
elif self.desired_method == LXMessage.PROPAGATED:
single_packet_content_limit = LXMessage.LINK_PACKET_MAX_CONTENT
- if self.__pn_encrypted_data == None:
+ if self.__pn_encrypted_data == None or payload_updated:
self.__pn_encrypted_data = self.__destination.encrypt(self.packed[LXMessage.DESTINATION_LENGTH:])
self.ratchet_id = self.__destination.latest_ratchet_id


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────